package com.winning.dps.ds.dao.common;


import common.entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @program: plat
 * @description:
 * @author: nxs
 * @create: 2018-07-05 17:27
 **/
@Mapper
public interface CommonApiDao {


    //根据ID查询用户信息,包括机构名称
    CommonJgUserEntity queryUserObject(String zclsh);

    //根据ID查询用户信息，不包括机构名称
    SysUserEntity queryUserEntity(String zclsh);

    //机构树
    List<TreeEntity> findJgTree(Map<String,Object> queryParams);

    //机构树
    List<TreeEntity> findZkJgTree(Map<String,Object> queryParams);

    //机构树
    List<TreeEntity> findZcjgTree(Map<String,Object> queryParams);

    List<TreeEntity> findjgtreeByPid(Map<String,Object> queryParams);

    //查询机构详情
    SysZcjgEntity getJgInfo(String jgbm);

    //根据值域代码查询该值域信息
    List<SysSjyzymlEntity> sysSjyzymlInfo(@Param("zydm") String zydm, @Param("glnd") String year);

    //根据值域代码查询该值域信息
    SysSjyzymlEntity sysSjyzymlObject(@Param("zydm")String zydm,@Param("zdm")String zdm);
    // 查询应用
    List<SysYyzcEntity> queryApplication();



    //获取当前操作人员权限
    List<SysCzjsQxEntity> getCzryqx(@Param("jgbm") String jgbm, @Param("zclsh") String zclsh, @Param("yydm") String yydm);

    //查询出所有机构
    List<SysZcjgEntity> findAllJg();

    //全局参数
    SysQjcsEntity queryQjcs(String csbm);

    void saveFileToDb(@Param("tableName") String tableName, @Param("colName") String colName,
                      @Param("bytes") byte[] bytes, @Param("id") String id, @Param("idValue") String idValue);

    //根据用户名，查询系统用户
    SysUserEntity queryByUserName(String username);

    /**
     * 条件查询机构
     * @param map
     * @return
     */
    List<SysEsbZcjgEntity> getAllJg(Map map);

    SysEsbZcjgEntity getEsbJgInfo(@Param("jgbm") String jgbm);

    //查询质控库zcjg数量
    Integer queryZkjgCount();

    //查询质控库全局参数数量
    Integer queryZkcsCount();

    /**
     * description 获取数据标准树形结构
     * @author yanxf@winning.com.cn
     * @date 2022/5/16 17:42
     */
    List<TreeEntity> findSjbzTree();

    /**
     * @description 根据y用户的yljgdm查询其子机构
     * @author DANGBO
     * @date 2022/6/29 14:56:48
     * @params [jgbm]
     * @return java.util.List<java.util.Map>
     */
    List<Map> findYljgdmByUser(@Param("jgbm") String jgbm);
}
